package 变量和数据类型;
/*
    创建一个对象时，在一个类中调用的顺序是：
    1.调用静态代码块和静态属性初始化(静态代码块和静态属性初始化调用的优先级一样，如果有多个静态代码块
        和多个静态变量初始化，则按照它们定义的顺序调用)
    2.调用普通代码块和普通属性的初始化(普通代码块和普通属性初始化调用的优先级一样，如果有多个普通代码块
        和多个普通属性初始化，则按照它们定义的顺序调用)
    3.调用构造方法
 */
public class 静态代码块2 {
    public static void main(String[] args) {
        A a = new A();
    }
}

class A {
    private static int a = say();
    static {
        System.out.println("A静态代码块");
    }

    {
        System.out.println("普通代码块");
    }
    private int b = hello();;



    public static int say(){
        System.out.println("静态方法");
        return 10;
    }


    public int hello(){
        System.out.println("普通方法");
        return 12;
    }

    public A() {
        System.out.println("无参构造器");
    }
}
